<?php
/**
 * Modelo CRUD de servidores SMTP
 * @author Emanuel Melo e Renato Lenz @ PC4 Team
 *
 */
class PC4_Crud_Newsletter_Email_SMTP extends PC4_Crud_Abstrato_Rastreado {
	
	public $encrypt;
	/**
	 * Construtor
	 */	
	function __construct($tabela = 'clientes_smtp') {
		parent::__construct($tabela);
		$CI =& get_instance();
		
		$CI->load->library('encrypt');
		$this->encrypt = $CI->encrypt;
	}
	
	/**
	 * Faz a validação dos campos
	 * @param array(nome_campo,valor) $campos
	 * @return array $erros para cada campo que não passou na validação
	 */
	function valida($campos, $id=0) {
		$erros = array();
		if ($id != 0) {
			foreach ($campos as $nome => $valor) {
				if (empty($valor) && $valor !== '0' && $valor !== 0) {
					$erros[] =  'O campo "' . $nome . '" n&atilde;o pode estar em branco';
				}
			}
		}
		
		return $erros;
	}
	
	/**
	 * Recebe um array com os campos e insere na base de dados o novo registro
	 * @param array $umRegistro
	 * @return int/array $id inserido ou (array)$erros com mensagens de erro
	 */
	function insere($umRegistro) {
		$umRegistro['smtp_pass'] = $this->encrypt->encode($umRegistro['smtp_pass']);
		
		return parent::insere($umRegistro);
	}
	
	/**
	 * Edita um registro baseado no id
	 * @param array $umRegistro
	 * @param int $id
	 * @param string o nome alternativo para a chave primaria
	 * @return array $erros para cada campo que não passou da validação 
	 */
	function edita($umRegistro, $id, $nome_id = 'id') {
		if (!empty($umRegistro['smtp_pass'])) {
			$umRegistro['smtp_pass'] = $this->encrypt->encode($umRegistro['smtp_pass']);
		}
		
		return parent::edita($umRegistro, $id, $nome_id);
	}	
	/**
	 * Formata o bean a partir do registro vindo do banco
	 * @param array $registro
	 * @return object do registro
	 */
	function trataRegistro($registro) {
		$registro->smtp_pass = $this->encrypt->decode($registro->smtp_pass);
		
		return $registro;
	}
	
	
}



?>